The present disclosure is directed to non-volatile memory technology.
Semiconductor memory is widely used in various electronic devices such as cellular telephones, digital cameras, personal digital assistants, medical electronics, mobile computing devices, and non-mobile computing devices. Semiconductor memory may comprise non-volatile memory or volatile memory. A non-volatile memory allows information to be stored and retained even when the non-volatile memory is not connected to a source of power (e.g., a battery). Examples of non-volatile memory include flash memory (e.g., NAND-type and NOR-type flash memory) and Electrically Erasable Programmable Read-Only Memory (EEPROM).
Some non-volatile storage elements have a charge storage region for storing information. One example is a dielectric charge-trapping material that stores a charge which represents a data state. Another example is a conductive floating gate that stores a charge which represents a data state. The non-volatile storage element may take the form a transistor with a control gate. A blocking layer of dielectric material may reside between the charge storage region and the control gate. The non-volatile storage element may have a tunnel dielectric between the charge storage region and channel region. Typically, a program voltage VPGM is applied to the control gate during a program operation to change the amount of charge in the charge storage region, which impacts the threshold voltage (VT) of the non-volatile storage element. Each data state can be represented by a unique range in the threshold voltage (VT). In this manner one, two, or more bits of information may be stored per non-volatile storage element.
Once a non-volatile storage element has been programmed, it is important that its programming state can be read back with a high degree of reliability. However, the sensed programming state can sometimes vary from the intended programming state due to factors such as program disturb and data retention issues. Program disturb refers to the unintentional change to the VT of a non-volatile storage element while programming another non-volatile storage element. Also, the VT of the memory cell can drop over time due to charge leakage, which is referred to as a data retention issue. As one example, charge in the charge storage region could leak to the control gate over time, dropping the VT of the memory cell.
Consequently, it is common to encounter erroneous or corrupted data bits at the time of reading non-volatile memory. Typically, some form of error correction control (ECC) is applied to correct erroneous or corrupted data. Despite these considerations, there remains a need for improved read, erase, and program operations in non-volatile memory.